package com.yunhe.tianhe.rentcars.dao.permission;


import com.yunhe.tianhe.commons.dto.Pageable;
import com.yunhe.tianhe.rentcars.entity.permission.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author lanyangyun
 * @version V1.0
 * @Description: //TODO
 * @date 2017/10/19 0019 下午 7:43
 */
public interface RoleDao {
    /**
     * 添加
     * @param role
     */
    Integer save(Role role);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);

    /**
     * 修改
     * @param role
     */
    void update(Role role);

    /**
     * 查找一个
     * @param id
     * @return
     */
    Role find(Long id);

    /**
     * 查所有
     * @return
     */
    List<Role> findAll();

    /**
     * 分页查询
     * @param offset
     * @param size
     * @return
     */
    Pageable<Role> findPage(Integer offset, Integer size);

    int findCount();

    List<Role> findList(@Param(value = "offset") Integer offset, @Param(value = "size") Integer size);

    /**
     * 添加角色权限数据
     * @param roleId
     * @param permisId
     */
    void saveRolePermission(@Param("roleId") Long roleId,@Param("permisId") Long permisId);

    /**
     * 批量插入角色权限表
     * @param Integers
     */
    void saveRolePermissions(Integer[][] Integers);

    /**
     * 根据角色id查找角色搜拥有的角色id
     * @param roleId
     */
    List<Integer> findPermissionIdsByRoleId(Long roleId);

    /**
     * 根据角色id删除角色权限
     * @param roleId
     */
    void deletePermissionByRoleId(Long roleId);


}
